A content management system (CMS) may provide an environment and tools for developing, publishing, and maintaining web-based content. The web-based content, in some examples, can include runtime executable application code, presentation files, and rich media files (e.g., image, audio, video, etc).
A web designer may use a web application framework to design dynamic web-based content such as, in some examples, web sites, online services, and web-based applications. Examples of web application framework products are: ASP.NET™ by Microsoft Corporation of Redmond, Wash.; Java™ Platform Enterprise Edition by Oracle of Redwood City, Calif.; web2py by The web2py Team; OpenACS by the OpenACS Community; Catalyst and Mojolicious, both by Sebastian Riedel; Ruby on Rails by Core Team; Django by the Django Software Foundation; Zend Framework by Zend Technologies of Cupertino, Calif.; and Symfony by SensioLabs of Paris, France.
The content developed within a web application framework, for example, may be rendered by a web browser application such as, in some examples, Microsoft Internet Explorer™ by Microsoft Corporation of Redmond, Wash., Google Chrome™ by Google, Inc. of Menlo Park, Calif., Mozzilla Firefox™ by Mozilla Corp. of Mountain View, Calif., Safari® by Apple, Inc. of Cupertino, Calif., and Opera™ by Opera Software ASA of Oslo, Norway. Wide Web Consortium (W3C) and Web Hypertext Application Technology Working Group (WHATWG). interpreted languages such as JavaScript by Netscape Communications Corporation of Mountain View, Calif., and style sheet languages such as Cascading Style Sheets (CSS) by the W3C; Browser-renderable content, in some examples, may also include rich media files (e.g., image, audio, video, etc.).
A content management system (CMS) may provide an environment and tools for developing, publishing, and maintaining browser-renderable content. In some implementations, browser-renderable content may be generated, at time of request, based in part upon a web application framework defining a frame (e.g., layout, style, background, color scheme, etc.) for presenting content (e.g., text and/or rich media). In some implementations, the content may include a combination of dynamic and static content. Dynamic content may include content that changes frequently such as, in some examples, product reviews, blog entries, and current measurements (e.g., time, temperature, geolocation coordinates of a moving body, etc.) or information based in part upon current measurements or statistics (e.g., estimated wait time, number of items remaining, current high score, present bid during an auction, etc.). Static content may include information that changes infrequently such as, in some examples, a product name, business contact information, and entity logo.
In developing a web application framework for presenting dynamic and static browser-renderable content, in some implementations, a developer may incorporate one or more controls defining behavior for generation of dynamic browser-renderable content. A control, in some implementations, may include presentation, logic, and data properties for presenting dynamic browser renderable content. The properties of a control, for example, may be described within a single file. The controls, in some implementations, may be developed within a Windows® ASP.NET™ web application framework. An ASP.NET™ control, for example, may be associated with a single file including a set of properties such as, in some examples, presentation, logic, and data properties.
In developing a web application framework for presenting dynamic and static browser-renderable content, in some implementations, a developer may incorporate one or more controllers defining behavior for generation of dynamic browser-renderable content. A controller, in some implementations, may include control (e.g., logic) parameters for presenting dynamic browser-renderable content. A controller may be combinable with a view (e.g., one or more files describing presentation properties) and a model (e.g., one or more flies describing data properties) to generate the dynamic browser renderable content. In some implementations, a developer may incorporate one or more controllers within a Windows® ASP.NET™ MVC web application framework. An ASP.NET™ MVC (“MVC”) controller, for example, may be associated with logic properties, for example defining behavior within web content. The logic properties, in turn, may be applied to an MVC view (e.g., presentation properties) and/or an MVC model (e.g., data properties).
In the same web application framework, in some implementations, a combination of controls and controllers may describe the functionality for presenting dynamic browser-renderable content, in a web page. By providing the opportunity to intermingle controls and controllers, for example, a preexisting web application framework, designed using one or more controls, may be updated and. or expanded using one or more controllers. Additionally, preexisting controls can continue to be used as a web site is updated and/or expanded. In this manner, control architecture may be incrementally migrated to controller architecture, rather than having to re-write the functionality of all preexisting controls as controllers to migrate from a control-based web site design architecture to a controller-based web site design architecture.
In one aspect, the present disclosure relates to a method including receiving, via a network, a request for browser-renderable content, and determining, by a processor of a computing device, a web framework, where the web framework includes at least one ASP.NET™ control and at least one ASP.NET™ MVC controller. The method may include determining, by the processor, first instructions, where the first instructions correspond to the at least one ASP.NET™ control, and the first instructions include a browser-renderable language. The method may include determining, by the processor, second instructions, where the second instructions correspond to the at least one ASP.NET™ MVC controller, and the second instructions include the browser-renderable language The method may include combining, by the processor, the first instructions and the second instructions to determine the browser-renderable content, and providing, via the network, the browser-renderable content.
In some embodiments, the request includes a request for a Uniform Resource Identifier (URI). The web application framework may include a web form. Determining the first instructions may include executing a first process to determine the first instructions, and determining the second instructions may include executing a second process to determine the second instructions. The first process may execute substantially in parallel with the second process. Executing the second process may include spawning a separate request, based upon the request, to determine the second instructions. The first process may be executed using a first Virtual Path Provider and the second process may be executed using a second Virtual Path Provider.
In some embodiments, the browser-renderable language is HTML. Combining the first instructions and the second instructions may include accessing a presentation layout, and combining the first instructions and the second instructions according to the presentation layout. The web application framework may be modeled using at least one of a) one or more presentation files and b) one or more web application files, and the presentation layout may include at least one presentation file. The one or more presentation files may include and least one of a mark-up language file, an interpreted language file, and a style sheet file. The one or more web application files may include at least one of a Java file and a JavaScript file.
In some embodiments, the method includes, prior to determining the web application framework, determining the request relates to an identified route. The request may be a hypertext transfer request, and providing the browser-render able content may include serving at least one markup language file responsive to the hypertext transfer request.
In one aspect, the present disclosure relates to a system including a processor and a memory having instructions stored thereon, where the instructions, when executed by the processor, cause the processor to present an interface for developing a web application framework, where the interface includes a) at least one ASP.NET™ widget configured, upon selection, to add an ASP.NET™ control to the web application framework, and b) at least one MVC widget configured, upon selection, to add an ASP.NET™ MVC controller to the web application framework. The instructions, when executed, may cause the processor to receive selection of a first ASP. NET™ widget of the at least one ASP.NET™ widget, where the selection of the first ASP.NET™ widget is associated with a first content region of the web application framework, and receive selection of a first MVC widget of the at least one MVC widget, where selection of the first MVC widget is associated with a second content region of the web application framework.
In some embodiments, the first content region is the second content region. Selecting the first MVC widget may include dragging the first MVC widget into the second content region.
In one aspect, the present disclosure relates to a non-transitory computer readable medium having instructions stored thereon, where the instructions, when executed by a processor, cause the processor to determine a content composition associated with a request for a web resource, where the content composition includes at least one ASP.NET™ control and at least one ASP.NET™ MVC controller, determine first instructions, where the first instructions correspond to the at least one ASP.NET™ control, and the first instructions include a browser-renderable language, and determine second instructions, where the second instructions correspond to the at least one ASP.NET™ MVC controller, and the second instructions include the browser-renderable language. The instructions, when executed, may cause the processor to identify presentation properties associated with at least one of the content composition and the web resource, and combine the first instructions and the second instructions according to the presentation properties to determine browser-renderable content.
In some embodiments, the presentation properties include an MVC view. The instructions, when executed, may cause the processor to access, via a network, additional information, where combining the first instructions and the second instructions includes including at least a portion of the information identified by the content composition. The additional information may include one or more of data, a rich media file, and a web application.
The features and advantages of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout, in the drawings. like reference numbers generally indicate identical functionally similar, and/or structurally similar elements.